SET QUOTED_IDENTIFIER OFF
GO
SET ANSI_NULLS OFF
GO


CREATE PROCEDURE [dbo].[SP_TXMVTO_CNTB_I06]    
/*-------------------------------------------------------------------*/              
/*----- Empresa           : OFISIS S.A.                          ----*/              
/*----- Cliente           : OFISIS S.A.                          ----*/              
/*----- Sistema           : Contabilidad                         ----*/              
/*----- Modulo            : Empresa                              ----*/              
/*----- Programa          : Ajuste por Diferencia de cambio Docs ----*/              
/*----- Nombre            : SP_TXMVTO_CNTB_I06                   ----*/              
/*----- Script            : TXMVTO_CNTB                          ----*/              
/*----- Desarrollado por  : Franco Gamboni Koifman               ----*/              
/*----- Fecha             : 23/06/1997                           ----*/              
/*----- Base de Datos     : MS SQL Server                        ----*/              
/*----- Version BD        : 8.0                                  ----*/              
/*-------------------------------------------------------------------*/              
/*----- Modificado 1 por : PDGV                                   ----*/              
/*----- Fecha Modifica   : 23/06/2006                            ----*/              
/*----- Detalle Modifica : SE AUMENTO VALIDACION PARA QUE EN CASO DOCUMENTOS 
DE LEASING GENERE DIFERENCIA DE CAMBIO EN UN LIBRO DE PROVISION  ----*/              
/*-------------------------------------------------------------------*/   
/*----- modificado 2      : Percy Garc?a                         ----*/        
/*----- fecha modif.      : 03/05/2007                           ----*/        
/*----- detalle modif     : se valido que calcule el tipo de cambio correcto caso cont euros y moneda por ajustar dolares----*/          
/*-------------------------------------------------------------------*/       
/*---Modificado 3 por     : PERCY GARCIA              ----*/
/*---Fecha Modificaci?n   : 09/05/2007      ----*/
/*---Detalle Modificaci?n : MODIFICAION PARA EL CASO DE AJUSTE EN CONTABILIDAD != 1----*/
/*------------------------------------------------------*/  
/*---Modificado 4 por     : DANIEL CHIANG ----*/
/*---Fecha Modificaci?n   : 04/02/2009----*/
/*---Detalle Modificaci?n : OPTIMIZACION CON LUZ GONZALEZ DE DELTRON ----*/
/*------------------------------------------------------*/  
/*------------------------------------------------------*/  
/*---Modificado 5 por     : PERCY GARCIA----*/
/*---Fecha Modificaci?n   : 13/02/2009----*/
/*---Detalle Modificaci?n : OPTIMIZACION NEPTUNIA ----*/
/*------------------------------------------------------*/  
/*----- Drop proc SP_TXMVTO_CNTB_I06                             ----*/              
/*----- Grant all on SP_TXMVTO_CNTB_I06 to PUBLIC                ----*/              
/*----- SP_TXMVTO_CNTB_I06                                                    

EXEC SP_TXMVTO_CNTB_I06  '01',1,'001','011','042','0000000001','0000000001','42104','COM','EUR', 6, 6, 2004              
----*/              
/*-------------------------------------------------------------------*/              
          
     -- with encryption

As              

Begin Transaction SP_TXMVTO_CNTB_I06              

Declare 

     
@ISCO_EMPR  TD_VC_002,              
@ISCO_USUA          TD_VC_008,    
@IDFE_USUA          TD_DT_001,    
@INNU_CNTB_EMPR  TD_IN_001_CONT,              
@ISCO_UNID_CNTB         TD_VC_003,              
@ISCO_OPRC_CNTB         TD_VC_003,              
@ISCO_OPRC_PEND        TD_VC_003,              
@ISNU_ASTO  TD_VC_010,              
@ISNU_ASTO_PEND  TD_VC_010,            
@ISCO_CNTA_EMPR  TD_VC_020_CNTA,              
@ISST_CNTA_NATU  TD_VC_003,              
@ISCO_MONE  TD_VC_003,              
@INNU_DIAS  TD_IN_001,              
@INNU_MESE  TD_IN_002_MESE,              
@INNU_ANNO  TD_IN_004_ANNO,
    
 @VDFE_VOUC   TD_DT_001,              
 @VDFE_CAMB   TD_DT_001,              
 @CNIM_ORIG_SALD TD_NU_016_004,              
 @CNIM_SOLE_SALD TD_NU_016_004,              
 @CSTI_DOCU  TD_VC_003,        
 @CSNU_DOCU  TD_VC_020,              
 @CDFE_DOCU  TD_DT_001,              
 @VNIM_ORIG_MVTO TD_NU_016_004,              
 @VNIM_SOLE_MVTO TD_NU_016_004,              
 @VNTO_SALD_ORIG TD_NU_016_004,              
 @VNTO_SALD_SOLES TD_NU_016_004,              
 @VNTO_AJUS  TD_NU_016_004,              
 @VSCO_CNTA_GANA TD_VC_020_CNTA,              
 @VSCO_CNTA_PERD TD_VC_020_CNTA,              
 @VSTI_OPER  TD_VC_003,              
 @VNTO_CNTA_GANA        TD_NU_016_004,              
 @VNTO_CNTA_PERD        TD_NU_016_004,              
 @VNTO_GANA_PEND        TD_NU_016_004,              
 @VNTO_PERD_PEND        TD_NU_016_004,              
 @VNNU_SECU  TD_IN_002,               
 @VNNU_SECU_PEND TD_IN_002,               
 @VSCO_MONE_CNTB TD_VC_003,              
 @VDFE_DOCU  TD_DT_001,              
 @CSTI_AUXI_EMPR TD_VC_001,              
 @CSCO_AUXI_EMPR TD_VC_020,              
 @VSID_GANA_CAMB        TD_VC_003,              
 @VSID_PERD_CAMB        TD_VC_003,              
 @VNFA_CMPR_REFE TD_NU_015_006,              
 @VNFA_VNTA_REFE TD_NU_015_006,              
 @VDFE_ASTO_CNTB        TD_DT_001,              
 @VNFA_CAMB_DIAR        TD_NU_015_006,              
 @VSST_CNTA             TD_VC_001,              
 @VNFA_CMPR_CNTA        TD_NU_015_006,              
 @VNFA_VNTA_CNTA        TD_NU_015_006,              
 @VNFA_CMPR_CNTB        TD_NU_015_006,              
 @VNFA_VNTA_CNTB        TD_NU_015_006,              
 @VSCO_MONE_CNTA        TD_VC_003,              
 @VSCO_GANA_DIFE TD_VC_020,              
 @VSCO_PERD_DIFE TD_VC_020,              
 @VSST_AUXI_EMPR        TD_VC_001,              
 @VSTI_AUXI_DCGA        TD_VC_001,              
 @VSCO_AUXI_DCGA        TD_VC_020,              
 @VSTI_AUXI_DCPE        TD_VC_001,              
 @VSCO_AUXI_DCPE        TD_VC_020,              
              

---- Multimoneda              

 @VSST_CNTA_CAMB        TD_VC_003,              
 @VNIM_MVTO_ORI2        TD_NU_016_004,              
 @VNFA_CAMB         TD_NU_015_006,              
              

 ---- Cursor CU_TXMVTO_CNTB_I10_2              
 @CSCO_EMPR_0002        TD_VC_002,              
 @CNNU_CNTB_EMP2        TD_IN_001_CONT,              
 @VDFE_ASTO_CNT2        TD_DT_001,              
 @CNTI_CAMB_0002        TD_VC_003,  
 @CSCO_MONE_0002        TD_VC_003,              
 @CNFA_CAMB_0002        TD_NU_015_006,              
 @CSTI_OPER_0002        TD_VC_003,              
 @CNIM_MVTO_ORI2        TD_NU_016_004,              
 @CNIM_MVTO_CNT2        TD_NU_016_004,              
 @CSTI_AUXI_EMP2        TD_VC_001,              
 @CSCO_AUXI_EMP2        TD_VC_020,              
 @CSTI_DOCU_0002        TD_VC_003,              
 @CSNU_DOCU_0002        TD_VC_020,              
              
 @CDFE_DOCU_0002        TD_DT_001,              
 @VNFA_CAMB_0001        TD_NU_015_006,              
 @VNTO_SAOR_0001        TD_NU_016_004,       
 @VSST_ASIE_DFCA        TD_VC_003,      
 @VNTO_SALD             TD_NU_016_004,       
 @VSCO_UNID_0001        TD_VC_003,       
 @VSCO_OPRC_0001        TD_VC_003,       
 @VSNU_ASTO_0001        TD_VC_010,       
 @VDFE_ASTO_0001        TD_DT_001,       
 @VNNU_SECU_0001        TD_IN_002,       
 @CDFE_DOCU_VENC        TD_DT_001,
--- CODIGOS DE OPERACION REG COMPRA Y VENTA

 @VSID_COMP_0001        TD_VC_003,
 @VSID_VENT_0001        TD_VC_003,
 @VSST_ORDE_SERV        TD_VC_001,
 @VSCO_ORDE_DCGA        TD_VC_020,
 @VSCO_ORDE_DCPE        TD_VC_020, 
 @CSCO_ORDE_SERV        TD_VC_020,
 @CSCO_ORDE_SER1        TD_VC_020,              
 @VNNU_MESE_EVAL  Int           


Create Table #TXMVTO_CNTB_EPAE
(
CO_EMPR Varchar(2) NULL, 
NU_CNTB_EMPR Int NULL, 
CO_UNID_CNTB Varchar(3) NULL, 
CO_OPRC_CNTB Varchar(3) NULL, 
NU_ANNO Int NULL,              
NU_MESE Int NULL, 
NU_ASTO Varchar(10) NULL, 
NU_SECU Numeric(18) NULL, 
FE_ASTO_CNTB DateTime NULL, 
CO_CNTA_EMPR Varchar(20) NULL, 
TI_AUXI_EMPR Varchar(1) NULL, 
CO_AUXI_EMPR Varchar(20) NULL,              
TI_DOCU Varchar(3) NULL, 
NU_DOCU Varchar(20) NULL, 
FE_DOCU DateTime NULL, 
TI_CAMB Varchar(3) NULL, 
CO_MONE Varchar(3) NULL, 
FA_CAMB Numeric(15,6) NULL, 
TI_OPER Varchar(3) NULL, 
IM_MVTO_ORIG Numeric(16,4) NULL,          
IM_MVTO_CNTB Numeric(16,4) NULL, 
DE_GLOS Varchar(100) NULL, 
SI_MVTO_CNTB Varchar(3) NULL, 
NO_GIRA Varchar(100) NULL, 
ST_GEST Varchar(1) NULL, 
ST_REDO Varchar(1) NULL, 
FA_CAMB_DIAR Numeric(15,6) NULL, 
ST_DIFE_CAMB Varchar(1) NULL, 
FE_DOCU_VENC DateTime NULL, 
CO_USUA_MODI Varchar(8) NULL, 
FE_USUA_MODI DateTime NULL, 
CO_USUA_CREA Varchar(8) NULL, 
FE_USUA_CREA DateTime NULL, 
ST_MASI Varchar(1) NULL,
CO_ORDE_SERV Varchar(20) NULL
)


Select Top 1 
@ISCO_EMPR = CO_EMPR,              
@ISCO_USUA = CO_USUA,    
@IDFE_USUA = FE_USUA,    
@INNU_CNTB_EMPR = NU_CNTB_EMPR,              
@ISCO_UNID_CNTB = CO_UNID_CNTB,              
@ISCO_OPRC_CNTB = CO_OPRC_CNTB,              
@ISCO_OPRC_PEND = CO_OPRC_PEND,              
@ISNU_ASTO  = NU_ASTO,              
@ISNU_ASTO_PEND = NU_ASTO_PEND,            
@ISCO_CNTA_EMPR = CO_CNTA_EMPR,              
@ISST_CNTA_NATU = ST_CNTA_NATU,              
@ISCO_MONE  = CO_MONE,              
@INNU_DIAS  = NU_DIAS,              
@INNU_MESE  = NU_MESE,              
@INNU_ANNO = NU_ANNO 
From #TWPARA_EPAE

--- Inicializar-------------              

 Select @VSTI_AUXI_DCGA = Null              
 Select @VSCO_AUXI_DCGA = Null              
 Select @VSTI_AUXI_DCPE = Null              
 Select @VSCO_AUXI_DCPE = Null              
 Select @VSID_COMP_0001 = ''
 Select @VSID_VENT_0001 = ''
               

 /* Selecciona las cuenta de Ganacia y Perdida */              

 Select @VSCO_MONE_CNTB = CO_MONE,              
        @VSID_GANA_CAMB = ID_GANA_CAMB,              
        @VSID_PERD_CAMB = ID_PERD_CAMB,               
        @VSID_COMP_0001 = IsNull(ID_COMP,''), 
        @VSID_VENT_0001 = IsNull(ID_VENT,'')
 From TTCNTB_EMPR              
 Where CO_EMPR = @ISCO_EMPR              
 and NU_CNTB_EMPR = @INNU_CNTB_EMPR              
 
Select @VSCO_ORDE_DCPE = NULL
Select @VSCO_ORDE_DCGA = NULL
            

Select @VSST_AUXI_EMPR = 'N'              
 Select @VSST_ORDE_SERV = 'N'                              
 Select @VSCO_CNTA_GANA = t1.CO_CNTA_EMPR,              
        @VSST_AUXI_EMPR = t2.ST_AUXI_EMPR,
        @VSST_ORDE_SERV = t2.ST_ORDE_SERV              
 From TTIDEN_CNTA t1, TMPLAN_ANNO t2              
 Where t1.CO_EMPR = @ISCO_EMPR               
 And t1.NU_CNTB_EMPR = @INNU_CNTB_EMPR               
 And t1.ID_CNTA = @VSID_GANA_CAMB              
 And t2.CO_EMPR = t1.CO_EMPR              
 And t2.CO_CNTA_EMPR = t1.CO_CNTA_EMPR              
              

 If @VSST_AUXI_EMPR = 'S'              
   Begin              
     Select @VSTI_AUXI_DCGA = NullIf(Rtrim(TI_AUXI_DCGA), ''),              
            @VSCO_AUXI_DCGA = NullIf(Rtrim(CO_AUXI_DCGA), '')              
     From   TMPARA_CONT              
     Where  CO_EMPR = @ISCO_EMPR               
   End        
 
 If @VSST_ORDE_SERV = 'S'                              
   Begin                              
     Select @VSCO_ORDE_DCGA = NullIf(Rtrim(CO_ORDE_DCGA), '')             
     From   TMPARA_CONT                              
     Where  CO_EMPR = @ISCO_EMPR                               
   End                                    
              

 Select @VSST_AUXI_EMPR = 'N'              
 Select @VSST_ORDE_SERV = 'N'                              
 Select @VSCO_CNTA_PERD = t1.CO_CNTA_EMPR,              
        @VSST_AUXI_EMPR = t2.ST_AUXI_EMPR,
        @VSST_ORDE_SERV = t2.ST_ORDE_SERV              
 From TTIDEN_CNTA t1, TMPLAN_ANNO t2             
 Where t1.CO_EMPR = @ISCO_EMPR               
 And t1.NU_CNTB_EMPR = @INNU_CNTB_EMPR               
 And t1.ID_CNTA = @VSID_PERD_CAMB              
 And t2.CO_EMPR = t1.CO_EMPR              
 And t2.CO_CNTA_EMPR = t1.CO_CNTA_EMPR              
              

 If @VSST_AUXI_EMPR = 'S'              
   Begin        
     Select @VSTI_AUXI_DCPE = NullIf(Rtrim(TI_AUXI_DCPE), ''),              
            @VSCO_AUXI_DCPE = NullIf(Rtrim(CO_AUXI_DCPE), '')              
     From TMPARA_CONT              
     Where CO_EMPR = @ISCO_EMPR               
   End        
 

 If @VSST_ORDE_SERV = 'S'                            
   Begin                              
     Select @VSCO_ORDE_DCPE = NullIf(Rtrim(CO_ORDE_DCPE), '')             
     From   TMPARA_CONT                              
    Where  CO_EMPR = @ISCO_EMPR                               
   End                                 

              

---- Si hay amarre con Cuentas de Dif De cambio en la TMPLAN_EMPR. Toma esas cuentas------------              

 Select @VSCO_GANA_DIFE = Ltrim(Rtrim(IsNull(CO_GANA_DIFE,''))),              
        @VSCO_PERD_DIFE = Ltrim(Rtrim(IsNull(CO_PERD_DIFE,'')))              
 From  TMPLAN_EMPR              
 Where CO_EMPR = @ISCO_EMPR              
 And   CO_CNTA_EMPR = @ISCO_CNTA_EMPR              
              

 If @VSCO_GANA_DIFE <> '' And @VSCO_PERD_DIFE <> ''              
   Begin              
     Select @VSCO_CNTA_GANA = @VSCO_GANA_DIFE              
     Select @VSCO_CNTA_PERD = @VSCO_PERD_DIFE              
   End              

 Select @VDFE_VOUC  = CONVERT(DATETIME, CONVERT(Char(02),@INNU_DIAS) + '/' + CONVERT(Char(02),@INNU_MESE) + '/' + CONVERT(CHAR(4),@INNU_ANNO) , 103)              
 Select @VDFE_CAMB  = CONVERT(DATETIME, CONVERT(Char(02),@INNU_DIAS) + '/' + CONVERT(Char(02),@INNU_MESE) + '/' + CONVERT(CHAR(4),@INNU_ANNO) , 103)              

 Select @VSCO_MONE_CNTA = CO_MONE              
 From TMPLAN_EMPR              
 Where CO_EMPR = @ISCO_EMPR              
 and CO_CNTA_EMPR = @ISCO_CNTA_EMPR              
 And NU_ANNO = 9999              
              
/*----------- Para obtener el factor de la moneda de la cuenta -------*/              

 SELECT @VNFA_CMPR_CNTA = FA_CAMB_CMPR, @VNFA_VNTA_CNTA = FA_CAMB_VNTA,@VNNU_MESE_EVAL = NU_MESE                         
 FROM TCFACT_CIER              
 WHERE CO_MONE = @VSCO_MONE_CNTA              
 And NU_ANNO = @INNU_ANNO              
 And NU_MESE = @INNU_MESE              

/*------------- Para obtener el factor de la moneda de la contabilidad ----------*/              

 SELECT @VNFA_CMPR_CNTB = FA_CAMB_CMPR, @VNFA_VNTA_CNTB = FA_CAMB_VNTA               
FROM TCFACT_CIER              
 WHERE CO_MONE = @VSCO_MONE_CNTB              
 And NU_ANNO = @INNU_ANNO              
 And NU_MESE = @INNU_MESE              
              

 if @VNFA_CMPR_CNTA is NULL              
  Select @VNFA_CMPR_CNTA = 1.00              

              

 if @VNFA_VNTA_CNTA is NULL              
   Select @VNFA_VNTA_CNTA = 1.00              


if @VNFA_CMPR_CNTB is NULL              
   Select @VNFA_CMPR_CNTB = 1.00              

              

 if @VNFA_VNTA_CNTB is NULL              
   Select @VNFA_VNTA_CNTB = 1.00              

 -- Se multiplica ya que en moneda de la cuenta o en moneda de la contabilidad habra F.Cambio no en ambas a la vez

 -- de la manera anterior no funcionaba para una contabilidad que NO es Soles (LMGP)

/*

 Select @VNFA_CMPR_REFE = @VNFA_CMPR_CNTA * @VNFA_CMPR_CNTB              

 Select @VNFA_VNTA_REFE = @VNFA_VNTA_CNTA * @VNFA_VNTA_CNTB              

*/

 

If @VNNU_MESE_EVAL IS NOT NULL
 Begin           
 Select @VNFA_CMPR_REFE = @VNFA_CMPR_CNTA --* @VNFA_CMPR_CNTB          
 Select @VNFA_VNTA_REFE = @VNFA_VNTA_CNTA--- * @VNFA_VNTA_CNTB          
 End 
Else 
 Begin           
 Select @VNFA_CMPR_REFE = @VNFA_CMPR_CNTB          
 Select @VNFA_VNTA_REFE = @VNFA_VNTA_CNTB          
 End 

              

/*-------------------------------------------------------------------------------*/              

 If @VNFA_CMPR_REFE IS NULL              
  Select @VNFA_CMPR_REFE = 1.00              

              

 If @VNFA_VNTA_REFE IS NULL              
  Select @VNFA_VNTA_REFE = 1.00              

              

/*Seccion para cuentAs que tengan Auxiliar */              

 Select @VNNU_SECU   = 1              
 Select @VNNU_SECU_PEND = 1    
 Select @CNIM_ORIG_SALD = 0              
 Select @CNIM_SOLE_SALD = 0              
 Select @VNIM_ORIG_MVTO = 0         
 Select @VNIM_SOLE_MVTO = 0              
Select @VNTO_CNTA_GANA = 0              
 Select @VNTO_CNTA_PERD = 0              
 Select @VNTO_GANA_PEND = 0              

 Select @VNTO_PERD_PEND = 0              
 Select @VNTO_SALD_ORIG = 0          
 Select @VNTO_SALD_SOLES  = 0              
 Select @VNTO_AJUS = 0              
               

------------------------------------ ------------------------------------------------------------------------------------------------------------              

----- Se crean tablas temporales para Multimoneda              

---- #TWMVTO_CNT1 guarda data para la conversi>n de importe en moneda contabilidad              

 Create table #TWMVTO_CNT1              
 (CO_EMPR       varchar(2),              
  NU_CNTB_EMPR  integer,              
  FE_ASTO_CNTB  datetime,              
  TI_CAMB       varchar(3),              
  CO_MONE       varchar(3),              
  FA_CAMB       numeric(15,6),    
  TI_OPER       varchar(3),              
  IM_MVTO_ORIG  numeric(16,4),              
  IM_MVTO_CNTB  numeric(16,4),            
  TI_AUXI_EMPR  varchar(1),              
  CO_AUXI_EMPR  varchar(20),              
  TI_DOCU       varchar(3),              
  NU_DOCU       varchar(20),              
  FE_DOCU       datetime,       
 FE_DOCU_VENC  datetime, 
  CO_ORDE_SERV  Varchar(20) NULL)              
            

--Delete from #TWMVTO_CNT1              

CREATE INDEX I#TWMVTO_CNT1_01 ON #TWMVTO_CNT1 (NU_DOCU)WITH FILLFACTOR = 80

 ---- Insert Select con las condiciones del cursor CU_TXMVTO_CNTB_I10_1              

 Insert into #TWMVTO_CNT1 (CO_EMPR, NU_CNTB_EMPR, FE_ASTO_CNTB, TI_CAMB,              
 CO_MONE, FA_CAMB, TI_OPER, IM_MVTO_ORIG, IM_MVTO_CNTB, TI_AUXI_EMPR,               
 CO_AUXI_EMPR, TI_DOCU, NU_DOCU, FE_DOCU, FE_DOCU_VENC,CO_ORDE_SERV)              
 Select CO_EMPR, @INNU_CNTB_EMPR, FE_ASTO_CNTB, TI_CAMB, CO_MONE,              
 FA_CAMB, TI_OPER, IM_MVTO_ORIG, IM_MVTO_CNTB, TI_AUXI_EMPR,              
 CO_AUXI_EMPR, TI_DOCU, NU_DOCU, FE_DOCU, Isnull(FE_DOCU_VENC, FE_DOCU),CO_ORDE_SERV
 From TXMVTO_CNTB with(nolock)
 Where CO_EMPR = @ISCO_EMPR and              
  NU_CNTB_EMPR = @INNU_CNTB_EMPR and              
  NU_ANNO = @INNU_ANNO and              
  NU_MESE  <= @INNU_MESE and              
  CO_CNTA_EMPR  = @ISCO_CNTA_EMPR And               
  SI_MVTO_CNTB  = 'APR'               
      
 Select @VSST_ASIE_DFCA = IsNull(Rtrim(ST_ASIE_DFCA), '')      
 From TMPARA_CONT       
 Where CO_EMPR = @ISCO_EMPR       
 And NU_ANNO = 9999      
      
 Declare CU_TXMVTO_CNTB_I06_1 Cursor              
 For Select   TI_DOCU, NU_DOCU, min(FE_DOCU), TI_AUXI_EMPR, CO_AUXI_EMPR,                    
 Isnull(SUM( ( ROUND(((ASCII(TI_OPER)/67)* Isnull(IM_MVTO_ORIG, 0)),2) - ROUND(( (65/ASCII(TI_OPER))* Isnull(IM_MVTO_ORIG, 0) ),2))), 0),                    
 Isnull(SUM( ( ROUND(((ASCII(TI_OPER)/67)* Isnull(IM_MVTO_CNTB, 0)),2) - ROUND(( (65/ASCII(TI_OPER))* Isnull(IM_MVTO_CNTB, 0) ),2))), 0),             
 Min(FE_DOCU_VENC),NullIf(Rtrim(Max(CO_ORDE_SERV)),'')      
 From #TWMVTO_CNT1                    
 Group By TI_AUXI_EMPR, CO_AUXI_EMPR, TI_DOCU, NU_DOCU    
             
 Open CU_TXMVTO_CNTB_I06_1              
 Fetch CU_TXMVTO_CNTB_I06_1 Into @CSTI_DOCU, @CSNU_DOCU, @CDFE_DOCU, @CSTI_AUXI_EMPR, @CSCO_AUXI_EMPR,               
 @CNIM_ORIG_SALD, @CNIM_SOLE_SALD, @CDFE_DOCU_VENC,@CSCO_ORDE_SERV              
               
 While @@Fetch_status = 0              
   Begin              
      
     Select @VNTO_SALD_ORIG = 0              
     Select @VNTO_SALD_SOLES  = 0              
     Select @VNTO_AJUS = 0              
     Select @VNTO_SALD_ORIG = ROUND(@CNIM_ORIG_SALD,2)              
     Select @VNTO_SALD_SOLES  = ROUND(@CNIM_SOLE_SALD,2)              
       

     Select @VNTO_SAOR_0001 = 0              
     Select @VNFA_CAMB_0001 = 1              

           

     If @ISST_CNTA_NATU = 'COM'              
        Select  @VNFA_CAMB_0001 =  @VNFA_CMPR_REFE              
     Else              
        Select  @VNFA_CAMB_0001 =  @VNFA_VNTA_REFE              
                 
     Exec SP_CONV_AJUS_Q01 @ISCO_EMPR, @VSCO_MONE_CNTA, @INNU_CNTB_EMPR, @ISST_CNTA_NATU,               
          @VNFA_CAMB_0001, @VNTO_SALD_ORIG, @INNU_ANNO, @INNU_MESE, @VNTO_SAOR_0001 Output                     
              
     Select @VNTO_SALD_ORIG = @VNTO_SAOR_0001              
              

     Select @VNTO_AJUS = ROUND(@VNTO_SALD_ORIG,2) - ROUND(@VNTO_SALD_SOLES,2)              

      

     --- (SI ES COP)  O (ES ORI Y ESTA CANCELADO)       
     If @VNTO_AJUS != 0.00 And (@VSST_ASIE_DFCA = 'COP' Or  ( @CNIM_ORIG_SALD != 0  And @VSST_ASIE_DFCA = 'ORI'))            
       Begin               
         If( @VNTO_SALD_ORIG > 0.00 ) And ( @VNTO_SALD_SOLES > 0.00 )               
           Begin                 
             Select @VNTO_AJUS = ROUND(@VNTO_SALD_SOLES,2) - ROUND(@VNTO_SALD_ORIG,2)              
                    
             If @VNTO_AJUS > 0.00              

              Begin                
                 Select @VNTO_PERD_PEND = @VNTO_PERD_PEND + ROUND(@VNTO_AJUS,2)              
                 /*Comentario : Insercion del Asiento de Ajuste*/              
                 Insert Into #TXMVTO_CNTB_EPAE ( CO_EMPR, NU_CNTB_EMPR, CO_UNID_CNTB, CO_OPRC_CNTB,              
                 NU_ANNO, NU_MESE, NU_ASTO, NU_SECU, FE_ASTO_CNTB, CO_CNTA_EMPR, TI_AUXI_EMPR,              
                 CO_AUXI_EMPR, TI_DOCU, NU_DOCU, FE_DOCU, TI_CAMB, CO_MONE, FA_CAMB, TI_OPER,               
                 IM_MVTO_ORIG, IM_MVTO_CNTB, DE_GLOS, SI_MVTO_CNTB, NO_GIRA, ST_GEST, ST_REDO,              
                 FA_CAMB_DIAR, ST_DIFE_CAMB, FE_DOCU_VENC, CO_USUA_MODI, FE_USUA_MODI, CO_USUA_CREA, FE_USUA_CREA, ST_MASI,CO_ORDE_SERV)
                Values( @ISCO_EMPR, @INNU_CNTB_EMPR, @ISCO_UNID_CNTB, @ISCO_OPRC_PEND, @INNU_ANNO,              
               @INNU_MESE, @ISNU_ASTO_PEND, @VNNU_SECU_PEND, @VDFE_VOUC, @ISCO_CNTA_EMPR, @CSTI_AUXI_EMPR,              
                 @CSCO_AUXI_EMPR, @CSTI_DOCU, @CSNU_DOCU, @CDFE_DOCU, 'PAC', @VSCO_MONE_CNTB, 1.000000,              
                 'ABO', 0.00, @VNTO_AJUS, 'AJUST x DIF.CAMBIO', 'APR','  ', 'N', 'N', 1.000000, 'S', @CDFE_DOCU_VENC, 
                         @ISCO_USUA , @IDFE_USUA, @ISCO_USUA, @IDFE_USUA, 'S',@CSCO_ORDE_SERV)              
                 If @@ERROR != 0               
                  Begin               
       Close CU_TXMVTO_CNTB_I06_1              
                     Deallocate CU_TXMVTO_CNTB_I06_1              
                     Rollback Tran              
                     Return              
                   End              
                 If @ISCO_OPRC_CNTB != @ISCO_OPRC_PEND                          
                    Begin           
                    Select @VNNU_SECU_PEND = @VNNU_SECU_PEND + 1              
                    End           
                 Else              
                    Begin           
                    Select @VNNU_SECU = @VNNU_SECU + 1              
                    Select @VNNU_SECU_PEND = @VNNU_SECU    
                    End           
               End /* If @VNTO_AJUS > 0 */              

              

             If @VNTO_AJUS < 0.00              
               Begin               

                 /*Comentario : Insercion del Asiento de Ajuste*/              

                Insert Into #TXMVTO_CNTB_EPAE ( CO_EMPR, NU_CNTB_EMPR, CO_UNID_CNTB, CO_OPRC_CNTB,              
                 NU_ANNO, NU_MESE, NU_ASTO, NU_SECU,FE_ASTO_CNTB, CO_CNTA_EMPR, TI_AUXI_EMPR,              
                 CO_AUXI_EMPR, TI_DOCU, NU_DOCU,  FE_DOCU, TI_CAMB, CO_MONE, FA_CAMB, TI_OPER,              
                 IM_MVTO_ORIG, IM_MVTO_CNTB, DE_GLOS, SI_MVTO_CNTB, NO_GIRA, ST_GEST, ST_REDO,              
                 FA_CAMB_DIAR, ST_DIFE_CAMB, FE_DOCU_VENC, CO_USUA_MODI, FE_USUA_MODI, CO_USUA_CREA, FE_USUA_CREA, ST_MASI,CO_ORDE_SERV)
                 Values( @ISCO_EMPR, @INNU_CNTB_EMPR, @ISCO_UNID_CNTB, @ISCO_OPRC_PEND, @INNU_ANNO,        
                 @INNU_MESE, @ISNU_ASTO_PEND, @VNNU_SECU_PEND, @VDFE_VOUC, @ISCO_CNTA_EMPR, @CSTI_AUXI_EMPR,              
                 @CSCO_AUXI_EMPR, @CSTI_DOCU, @CSNU_DOCU, @CDFE_DOCU,'PAC', @VSCO_MONE_CNTB, 1.000000,               
                 'CAR', 0.00, abs(@VNTO_AJUS), 'AJUST x DIF.CAMBIO','APR', '  ', 'N', 'N', 1.000000, 'S', 
                         @CDFE_DOCU_VENC, @ISCO_USUA , @IDFE_USUA, @ISCO_USUA, @IDFE_USUA, 'S',@CSCO_ORDE_SERV)              
       If @@ERROR != 0              
                   Begin               
                     Close CU_TXMVTO_CNTB_I06_1              
                     Deallocate CU_TXMVTO_CNTB_I06_1              
                     Rollback Tran               
                     Return              
                   End              
                 If @ISCO_OPRC_CNTB != @ISCO_OPRC_PEND                          
                    Begin           
                    Select @VNNU_SECU_PEND = @VNNU_SECU_PEND + 1              
   End           
               Else              
                    Begin           
                    Select @VNNU_SECU = @VNNU_SECU + 1              
                    Select @VNNU_SECU_PEND = @VNNU_SECU              
                    End           
                 Select @VNTO_GANA_PEND = @VNTO_GANA_PEND - abs(ROUND(@VNTO_AJUS,2))              
               End /* If @VNTO_AJUS < 0 */              
           End  /* If( @VNTO_SALD_ORIG > 0 ) And ( @VNTO_SALD_SOLES > 0 ) */              
                 
         If( @VNTO_SALD_ORIG > 0.00 ) And ( @VNTO_SALD_SOLES < 0.00 )              
           Begin              

             Select @VNTO_AJUS = abs(ROUND(@VNTO_SALD_SOLES,2)) + ROUND(@VNTO_SALD_ORIG,2)              
             If @VNTO_AJUS > 0.00              
               Begin              
/*Comentario : Insercion del Asiento de Ajuste */              
                 Insert Into #TXMVTO_CNTB_EPAE ( CO_EMPR, NU_CNTB_EMPR, CO_UNID_CNTB, CO_OPRC_CNTB,              
                 NU_ANNO, NU_MESE, NU_ASTO, NU_SECU, FE_ASTO_CNTB, CO_CNTA_EMPR, TI_AUXI_EMPR,              
                 CO_AUXI_EMPR, TI_DOCU, NU_DOCU, FE_DOCU, TI_CAMB, CO_MONE, FA_CAMB, TI_OPER,              
                 IM_MVTO_ORIG, IM_MVTO_CNTB, DE_GLOS, SI_MVTO_CNTB, NO_GIRA, ST_GEST, ST_REDO,              
          FA_CAMB_DIAR, ST_DIFE_CAMB, FE_DOCU_VENC, CO_USUA_MODI, FE_USUA_MODI, CO_USUA_CREA, FE_USUA_CREA, ST_MASI,CO_ORDE_SERV)
                 Values( @ISCO_EMPR, @INNU_CNTB_EMPR, @ISCO_UNID_CNTB, @ISCO_OPRC_PEND, @INNU_ANNO,              
                 @INNU_MESE, @ISNU_ASTO_PEND, @VNNU_SECU_PEND, @VDFE_VOUC, @ISCO_CNTA_EMPR, @CSTI_AUXI_EMPR,              
                 @CSCO_AUXI_EMPR, @CSTI_DOCU, @CSNU_DOCU, @CDFE_DOCU, 'PAC', @VSCO_MONE_CNTB,              
                 1.000000, 'CAR', 0.00, @VNTO_AJUS, 'AJUST x DIF.CAMBIO', 'APR', '  ', 'N', 'N',              
                 1.000000, 'S', @CDFE_DOCU_VENC, @ISCO_USUA , @IDFE_USUA, @ISCO_USUA, @IDFE_USUA, 'S',@CSCO_ORDE_SERV)
       If @@ERROR != 0                   
                   Begin               
                     Close CU_TXMVTO_CNTB_I06_1              
                     Deallocate CU_TXMVTO_CNTB_I06_1              
                    Rollback Tran                                                                                                                                                                                                                            



                    Return              
                   End              
                 If @ISCO_OPRC_CNTB != @ISCO_OPRC_PEND                          
                 Begin           
                    Select @VNNU_SECU_PEND = @VNNU_SECU_PEND + 1              
                    End           
                 Else              
                    Begin           
                    Select @VNNU_SECU = @VNNU_SECU + 1              
                    Select @VNNU_SECU_PEND = @VNNU_SECU              
                    End           
                 Select @VNTO_GANA_PEND = @VNTO_GANA_PEND - ROUND(@VNTO_AJUS,2)              
               End /* If @VNTO_AJUS > 0 */              
                       

             If @VNTO_AJUS < 0.00              

               Begin              

                 Select @VNTO_PERD_PEND = @VNTO_PERD_PEND + abs(ROUND(@VNTO_AJUS,2))          
                 /*Comentario : Insercion del Asiento de Ajuste*/              
                 Insert Into #TXMVTO_CNTB_EPAE ( CO_EMPR, NU_CNTB_EMPR, CO_UNID_CNTB, CO_OPRC_CNTB,              
                 NU_ANNO, NU_MESE, NU_ASTO, NU_SECU, FE_ASTO_CNTB, CO_CNTA_EMPR, TI_AUXI_EMPR,              
                 CO_AUXI_EMPR, TI_DOCU, NU_DOCU,FE_DOCU, TI_CAMB, CO_MONE, FA_CAMB, TI_OPER,              
                 IM_MVTO_ORIG, IM_MVTO_CNTB, DE_GLOS, SI_MVTO_CNTB, NO_GIRA, ST_GEST, ST_REDO,              
                 FA_CAMB_DIAR, ST_DIFE_CAMB, FE_DOCU_VENC, CO_USUA_MODI, FE_USUA_MODI, CO_USUA_CREA, FE_USUA_CREA, ST_MASI,CO_ORDE_SERV)
                 Values( @ISCO_EMPR, @INNU_CNTB_EMPR, @ISCO_UNID_CNTB, @ISCO_OPRC_PEND, @INNU_ANNO,              
                 @INNU_MESE, @ISNU_ASTO_PEND, @VNNU_SECU_PEND, @VDFE_VOUC, @ISCO_CNTA_EMPR, @CSTI_AUXI_EMPR,              
                         @CSCO_AUXI_EMPR, @CSTI_DOCU, @CSNU_DOCU, @CDFE_DOCU,'PAC', @VSCO_MONE_CNTB, 1.000000,              
                 'ABO', 0.00, abs(@VNTO_AJUS), 'AJUST x DIF.CAMBIO', 'APR','  ', 'N', 'N', 1.000000, 'S', 
                         @CDFE_DOCU_VENC, @ISCO_USUA , @IDFE_USUA, @ISCO_USUA, @IDFE_USUA, 'S',@CSCO_ORDE_SERV)
              If @@ERROR != 0       
                   Begin               
                             Close CU_TXMVTO_CNTB_I06_1              
                     Deallocate CU_TXMVTO_CNTB_I06_1              
                     Rollback Tran               
                     Return              
                   End              
                 If @ISCO_OPRC_CNTB != @ISCO_OPRC_PEND                          

                    Begin           
                    Select @VNNU_SECU_PEND = @VNNU_SECU_PEND + 1              
                    End           
                 Else              
                    Begin           
                    Select @VNNU_SECU = @VNNU_SECU + 1              
					Select @VNNU_SECU_PEND = @VNNU_SECU              
                    End           

               End /* If @VNTO_AJUS < 0 */              
           End /*If( @VNTO_SALD_ORIG > 0 ) And ( @VNTO_SALD_SOLES < 0 ) */              

             
         If( @VNTO_SALD_ORIG < 0.00 ) And ( @VNTO_SALD_SOLES > 0.00 )              
           Begin              
             Select @VNTO_AJUS =  (0.00 - ROUND(@VNTO_SALD_SOLES,2)) + ROUND(@VNTO_SALD_ORIG,2)              
             If @VNTO_AJUS > 0.00              
               Begin              
               /*Comentario : Insercion del Asiento de Ajuste*/              
               Insert Into #TXMVTO_CNTB_EPAE ( CO_EMPR, NU_CNTB_EMPR, CO_UNID_CNTB, CO_OPRC_CNTB, NU_ANNO,              
               NU_MESE, NU_ASTO, NU_SECU, FE_ASTO_CNTB, CO_CNTA_EMPR, TI_AUXI_EMPR, CO_AUXI_EMPR,              
               TI_DOCU, NU_DOCU, FE_DOCU, TI_CAMB, CO_MONE, FA_CAMB, TI_OPER, IM_MVTO_ORIG, IM_MVTO_CNTB,              
               DE_GLOS, SI_MVTO_CNTB, NO_GIRA, ST_GEST, ST_REDO, FA_CAMB_DIAR, ST_DIFE_CAMB, FE_DOCU_VENC, 
                   CO_USUA_MODI, FE_USUA_MODI, CO_USUA_CREA, FE_USUA_CREA, ST_MASI,CO_ORDE_SERV)

               Values( @ISCO_EMPR, @INNU_CNTB_EMPR, @ISCO_UNID_CNTB, @ISCO_OPRC_PEND, @INNU_ANNO,              
               @INNU_MESE, @ISNU_ASTO_PEND, @VNNU_SECU_PEND, @VDFE_VOUC, @ISCO_CNTA_EMPR, @CSTI_AUXI_EMPR,              
               @CSCO_AUXI_EMPR, @CSTI_DOCU, @CSNU_DOCU, @CDFE_DOCU, 'PAC', @VSCO_MONE_CNTB, 1.000000,              
               'CAR', 0.00, @VNTO_AJUS, 'AJUST x DIF.CAMBIO', 'APR', '  ', 'N', 'N', 1.000000, 'S', @CDFE_DOCU_VENC, 
                   @ISCO_USUA , @IDFE_USUA, @ISCO_USUA, @IDFE_USUA, 'S',@CSCO_ORDE_SERV)
               If @@ERROR != 0                   
                 Begin               
                   Close CU_TXMVTO_CNTB_I06_1              
                   Deallocate CU_TXMVTO_CNTB_I06_1              
                   Rollback Tran               
                   Return              
                 End              

             If @ISCO_OPRC_CNTB != @ISCO_OPRC_PEND                          
                   Begin           
                    Select @VNNU_SECU_PEND = @VNNU_SECU_PEND + 1              
                    End           
                 Else              
                    Begin           
                    Select @VNNU_SECU = @VNNU_SECU + 1              
                    Select @VNNU_SECU_PEND = @VNNU_SECU              
                    End           
               Select @VNTO_GANA_PEND = @VNTO_GANA_PEND - ROUND(@VNTO_AJUS,2)                  
             End /* If @VNTO_AJUS > 0 */              
              

           If @VNTO_AJUS < 0.00              
             Begin              
               Select @VNTO_PERD_PEND = @VNTO_PERD_PEND + abs(ROUND(@VNTO_AJUS,2))              
               /*Comentario : Insercion del Asiento de Ajuste*/              
               Insert Into #TXMVTO_CNTB_EPAE ( CO_EMPR, NU_CNTB_EMPR, CO_UNID_CNTB, CO_OPRC_CNTB, NU_ANNO,              
               NU_MESE, NU_ASTO, NU_SECU, FE_ASTO_CNTB, CO_CNTA_EMPR, TI_AUXI_EMPR, CO_AUXI_EMPR,              
     TI_DOCU, NU_DOCU, FE_DOCU, TI_CAMB, CO_MONE, FA_CAMB, TI_OPER, IM_MVTO_ORIG, IM_MVTO_CNTB,              
               DE_GLOS, SI_MVTO_CNTB, NO_GIRA, ST_GEST, ST_REDO, FA_CAMB_DIAR, ST_DIFE_CAMB, FE_DOCU_VENC, 
                   CO_USUA_MODI, FE_USUA_MODI, CO_USUA_CREA, FE_USUA_CREA, ST_MASI,CO_ORDE_SERV)
               Values( @ISCO_EMPR, @INNU_CNTB_EMPR, @ISCO_UNID_CNTB, @ISCO_OPRC_PEND, @INNU_ANNO,              
               @INNU_MESE, @ISNU_ASTO_PEND, @VNNU_SECU_PEND, @VDFE_VOUC, @ISCO_CNTA_EMPR, @CSTI_AUXI_EMPR,              
               @CSCO_AUXI_EMPR, @CSTI_DOCU, @CSNU_DOCU, @CDFE_DOCU, 'PAC', @VSCO_MONE_CNTB, 1.000000,              
               'ABO', 0.00, abs(@VNTO_AJUS), 'AJUST x DIF.CAMBIO', 'APR', '  ', 'N', 'N', 1.000000, 'S', 
                   @CDFE_DOCU_VENC, @ISCO_USUA , @IDFE_USUA, @ISCO_USUA, @IDFE_USUA, 'S',@CSCO_ORDE_SERV)
               If @@ERROR != 0                   
                 Begin               
                   Close CU_TXMVTO_CNTB_I06_1              
                   Deallocate CU_TXMVTO_CNTB_I06_1              
                   Rollback Tran               
                   Return           

                 End              

                If @ISCO_OPRC_CNTB != @ISCO_OPRC_PEND                          
                   Begin           
          Select @VNNU_SECU_PEND = @VNNU_SECU_PEND + 1              
                   End           
                 Else              
                    Begin           
                    Select @VNNU_SECU = @VNNU_SECU + 1              
                    Select @VNNU_SECU_PEND = @VNNU_SECU              
                    End           
             End /* If @VNTO_AJUS < 0      */              

         End  /*If( @VNTO_SALD_ORIG < 0 ) And ( @VNTO_SALD_SOLES > 0 )  */              

              

       If( @VNTO_SALD_ORIG < 0.00 ) And ( @VNTO_SALD_SOLES < 0.00 )              
         Begin              
           Select @VNTO_AJUS =  ROUND(@VNTO_SALD_SOLES,2) - ROUND(@VNTO_SALD_ORIG,2)              
           If @VNTO_AJUS > 0.00              
             Begin              
               Select @VNTO_PERD_PEND = @VNTO_PERD_PEND + ROUND(@VNTO_AJUS,2)              
               /*Comentario : Insercion del Asiento de Ajuste*/              
               Insert Into #TXMVTO_CNTB_EPAE ( CO_EMPR, NU_CNTB_EMPR, CO_UNID_CNTB, CO_OPRC_CNTB, NU_ANNO,              
               NU_MESE, NU_ASTO, NU_SECU, FE_ASTO_CNTB, CO_CNTA_EMPR, TI_AUXI_EMPR, CO_AUXI_EMPR,              
               TI_DOCU, NU_DOCU, FE_DOCU, TI_CAMB, CO_MONE, FA_CAMB, TI_OPER, IM_MVTO_ORIG,              
               IM_MVTO_CNTB, DE_GLOS, SI_MVTO_CNTB, NO_GIRA, ST_GEST, ST_REDO, FA_CAMB_DIAR, 
                   ST_DIFE_CAMB, FE_DOCU_VENC, CO_USUA_MODI, FE_USUA_MODI, CO_USUA_CREA, FE_USUA_CREA, ST_MASI,CO_ORDE_SERV)
               Values( @ISCO_EMPR, @INNU_CNTB_EMPR, @ISCO_UNID_CNTB, @ISCO_OPRC_PEND, @INNU_ANNO,              
               @INNU_MESE, @ISNU_ASTO_PEND, @VNNU_SECU_PEND, @VDFE_VOUC, @ISCO_CNTA_EMPR, @CSTI_AUXI_EMPR,              
               @CSCO_AUXI_EMPR, @CSTI_DOCU, @CSNU_DOCU, @CDFE_DOCU, 'PAC', @VSCO_MONE_CNTB, 1.000000,              
               'ABO', 0.00, @VNTO_AJUS, 'AJUST x DIF.CAMBIO', 'APR',  '  ', 'N', 'N', 1.000000, 
                   'S', @CDFE_DOCU_VENC, @ISCO_USUA , @IDFE_USUA, @ISCO_USUA, @IDFE_USUA, 'S',@CSCO_ORDE_SERV)
               If @@ERROR != 0                   
               Begin               
                 Close CU_TXMVTO_CNTB_I06_1              
                 Deallocate CU_TXMVTO_CNTB_I06_1              
                 Rollback Tran               
                 Return              
               End              

                 If @ISCO_OPRC_CNTB != @ISCO_OPRC_PEND                          
                    Begin           
                    Select @VNNU_SECU_PEND = @VNNU_SECU_PEND + 1        
                  End           
                 Else              
                    Begin           
                    Select @VNNU_SECU = @VNNU_SECU + 1              
                    Select @VNNU_SECU_PEND = @VNNU_SECU              
                    End           
             End /* If @VNTO_AJUS > 0 */              
              
           If @VNTO_AJUS < 0.00              
             Begin              
               /*Comentario : Insercion del Asiento de Ajuste*/              
           Insert Into #TXMVTO_CNTB_EPAE ( CO_EMPR, NU_CNTB_EMPR, CO_UNID_CNTB, CO_OPRC_CNTB, NU_ANNO,              
               NU_MESE, NU_ASTO, NU_SECU, FE_ASTO_CNTB, CO_CNTA_EMPR, TI_AUXI_EMPR, CO_AUXI_EMPR,              
                   TI_DOCU, NU_DOCU, FE_DOCU, TI_CAMB, CO_MONE, FA_CAMB, TI_OPER, IM_MVTO_ORIG,              
               IM_MVTO_CNTB, DE_GLOS, SI_MVTO_CNTB, NO_GIRA, ST_GEST, ST_REDO, FA_CAMB_DIAR, 
                   ST_DIFE_CAMB, FE_DOCU_VENC, CO_USUA_MODI, FE_USUA_MODI, CO_USUA_CREA, FE_USUA_CREA, ST_MASI,CO_ORDE_SERV)
               Values( @ISCO_EMPR, @INNU_CNTB_EMPR, @ISCO_UNID_CNTB, @ISCO_OPRC_PEND, @INNU_ANNO,              
               @INNU_MESE, @ISNU_ASTO_PEND, @VNNU_SECU_PEND, @VDFE_VOUC, @ISCO_CNTA_EMPR, @CSTI_AUXI_EMPR,              
               @CSCO_AUXI_EMPR, @CSTI_DOCU, @CSNU_DOCU, @CDFE_DOCU, 'PAC', @VSCO_MONE_CNTB, 1.000000,              
               'CAR', 0.00, abs(@VNTO_AJUS), 'AJUST x DIF.CAMBIO', 'APR', '  ', 'N', 'N', 1.000000, 
                   'S', @CDFE_DOCU_VENC, @ISCO_USUA , @IDFE_USUA, @ISCO_USUA, @IDFE_USUA, 'S',@CSCO_ORDE_SERV)
               If @@ERROR != 0                   
                 Begin               
                   Close CU_TXMVTO_CNTB_I06_1              
                   Deallocate CU_TXMVTO_CNTB_I06_1              
                   Rollback Tran               
                   Return              
                 End           
                 If @ISCO_OPRC_CNTB != @ISCO_OPRC_PEND                          
                    Begin           
                                    Select @VNNU_SECU_PEND = @VNNU_SECU_PEND + 1              
                    End     
        Else              
                    Begin           
                    Select @VNNU_SECU = @VNNU_SECU + 1              
                    Select @VNNU_SECU_PEND = @VNNU_SECU              
                    End           
               Select @VNTO_GANA_PEND = @VNTO_GANA_PEND - abs(ROUND(@VNTO_AJUS,2))                  
      End /* If @VNTO_AJUS < 0      */              

    End  /*If( @VNTO_SALD_ORIG < 0 ) And ( @VNTO_SALD_SOLES > 0 )  */                    

              

      If( @VNTO_SALD_ORIG = 0.00 ) And ( @VNTO_SALD_SOLES > 0.00 )              
         Begin              
           Select @VNTO_AJUS =  ROUND(@VNTO_SALD_SOLES,2)              
           If @VNTO_AJUS > 0.00              
             Begin              
               Select @VNTO_CNTA_PERD = @VNTO_CNTA_PERD + ROUND(@VNTO_AJUS,2)                  
               /*Comentario : Insercion del Asiento de Ajuste*/              
               Insert Into #TXMVTO_CNTB_EPAE ( CO_EMPR, NU_CNTB_EMPR, CO_UNID_CNTB, CO_OPRC_CNTB, NU_ANNO,              
               NU_MESE, NU_ASTO, NU_SECU, FE_ASTO_CNTB, CO_CNTA_EMPR, TI_AUXI_EMPR, CO_AUXI_EMPR,              
               TI_DOCU, NU_DOCU, FE_DOCU, TI_CAMB, CO_MONE, FA_CAMB, TI_OPER, IM_MVTO_ORIG,              
               IM_MVTO_CNTB, DE_GLOS, SI_MVTO_CNTB, NO_GIRA, ST_GEST, ST_REDO, FA_CAMB_DIAR, 
                   ST_DIFE_CAMB, FE_DOCU_VENC, CO_USUA_MODI, FE_USUA_MODI, CO_USUA_CREA, FE_USUA_CREA, ST_MASI,CO_ORDE_SERV)
               Values( @ISCO_EMPR, @INNU_CNTB_EMPR, @ISCO_UNID_CNTB, @ISCO_OPRC_CNTB, @INNU_ANNO,              
               @INNU_MESE, @ISNU_ASTO, @VNNU_SECU, @VDFE_VOUC, @ISCO_CNTA_EMPR, @CSTI_AUXI_EMPR,              
               @CSCO_AUXI_EMPR, @CSTI_DOCU, @CSNU_DOCU, @CDFE_DOCU, 'PAC', @VSCO_MONE_CNTB, 1.000000,              
               'ABO', 0.00, @VNTO_AJUS, 'AJUST x DIF.CAMBIO', 'APR', '  ', 'N', 'N', 1.000000, 
                   'S', @CDFE_DOCU_VENC, @ISCO_USUA , @IDFE_USUA, @ISCO_USUA, @IDFE_USUA, 'S',@CSCO_ORDE_SERV)
               If @@ERROR != 0                   
                 Begin               
                   Close CU_TXMVTO_CNTB_I06_1              
                   Deallocate CU_TXMVTO_CNTB_I06_1              
                   Rollback Tran               
                   Return              

                 End              

               Select @VNNU_SECU = @VNNU_SECU + 1              
               If @ISCO_OPRC_CNTB = @ISCO_OPRC_PEND                          
               Begin          
               Select @VNNU_SECU_PEND = @VNNU_SECU          
               End           
             End              
         End /*If( @VNTO_SALD_ORIG = 0 ) And ( @VNTO_SALD_SOLES > 0 )  */        
   
       If( @VNTO_SALD_ORIG = 0.00 ) And ( @VNTO_SALD_SOLES < 0.00 )              
         Begin              
           Select @VNTO_AJUS =  ROUND(@VNTO_SALD_SOLES,2)              
           If @VNTO_AJUS < 0.00              
             Begin              
               /* Insercion del Asiento de Ajuste*/              
               Insert Into #TXMVTO_CNTB_EPAE ( CO_EMPR, NU_CNTB_EMPR, CO_UNID_CNTB, CO_OPRC_CNTB, NU_ANNO,              
               NU_MESE, NU_ASTO, NU_SECU, FE_ASTO_CNTB, CO_CNTA_EMPR, TI_AUXI_EMPR, CO_AUXI_EMPR,              
               TI_DOCU, NU_DOCU, FE_DOCU, TI_CAMB, CO_MONE, FA_CAMB, TI_OPER, IM_MVTO_ORIG,          
               IM_MVTO_CNTB, DE_GLOS, SI_MVTO_CNTB, NO_GIRA, ST_GEST, ST_REDO, FA_CAMB_DIAR, 
                   ST_DIFE_CAMB, FE_DOCU_VENC, CO_USUA_MODI, FE_USUA_MODI, CO_USUA_CREA, FE_USUA_CREA, ST_MASI,CO_ORDE_SERV)
               Values( @ISCO_EMPR, @INNU_CNTB_EMPR, @ISCO_UNID_CNTB, @ISCO_OPRC_CNTB, @INNU_ANNO,              
               @INNU_MESE, @ISNU_ASTO, @VNNU_SECU, @VDFE_VOUC, @ISCO_CNTA_EMPR, @CSTI_AUXI_EMPR,              
               @CSCO_AUXI_EMPR, @CSTI_DOCU, @CSNU_DOCU, @CDFE_DOCU, 'PAC', @VSCO_MONE_CNTB, 1.000000,              
               'CAR', 0.00, abs(@VNTO_AJUS), 'AJUST x DIF.CAMBIO', 'APR', '  ', 'N', 'N', 1.000000, 
                   'S', @CDFE_DOCU_VENC, @ISCO_USUA , @IDFE_USUA, @ISCO_USUA, @IDFE_USUA, 'S',@CSCO_ORDE_SERV)

              If @@ERROR != 0                   
                 Begin               
                   Close CU_TXMVTO_CNTB_I06_1              
                   Deallocate CU_TXMVTO_CNTB_I06_1              
                   Rollback Tran               
                   Return              
                 End          
               Select @VNNU_SECU = @VNNU_SECU + 1            
               If @ISCO_OPRC_CNTB = @ISCO_OPRC_PEND                          
        Begin          
               Select @VNNU_SECU_PEND = @VNNU_SECU          
               End             

               Select @VNTO_CNTA_GANA = @VNTO_CNTA_GANA - abs(ROUND(@VNTO_AJUS,2))              
             End               
         End  /*If( @VNTO_SALD_ORIG < 0 ) And ( @VNTO_SALD_SOLES > 0 )  */              
     End    /*If @VNTO_AJUS != 0 */              
      

  --- SI ES ORI Y A LA VEZ TIENE SALDO CERO      
  If @VNTO_AJUS != 0.00 And @CNIM_ORIG_SALD = 0  And @VSST_ASIE_DFCA = 'ORI'      
   Begin       

     
     Select @VSCO_UNID_0001 = NULL      
     Select @VSCO_OPRC_0001 = NULL      
     Select @VSNU_ASTO_0001 = NULL      
     Select @VNNU_SECU_0001 = NULL      
          
     Select Top 1 @VSCO_UNID_0001 = t1.CO_UNID_CNTB, @VSCO_OPRC_0001 = t1.CO_OPRC_CNTB,       
     @VSNU_ASTO_0001 = t1.NU_ASTO, @VDFE_ASTO_0001 = t1.FE_ASTO_CNTB, @VNNU_SECU_0001 = t1.NU_SECU      
     From TXMVTO_CNTB t1     
     Where t1.CO_EMPR = @ISCO_EMPR       
     And t1.NU_CNTB_EMPR = @INNU_CNTB_EMPR       
     And t1.NU_ANNO = @INNU_ANNO       
     And t1.NU_MESE = @INNU_MESE      
     And t1.CO_CNTA_EMPR = @ISCO_CNTA_EMPR       
     And t1.TI_AUXI_EMPR = @CSTI_AUXI_EMPR      
     And t1.CO_AUXI_EMPR = @CSCO_AUXI_EMPR      
     And t1.TI_DOCU = @CSTI_DOCU      
     And t1.NU_DOCU = @CSNU_DOCU      
     And t1.SI_MVTO_CNTB = 'APR'      
     And t1.ST_DIFE_CAMB = 'N' 
    And 

(

    (NOT Exists ( Select t2.CO_OPRC_CNTB
                                    From TTIDEN_OPER t2
                                    Where t2.CO_EMPR = @ISCO_EMPR
                                    And t2.NU_CNTB_EMPR = @INNU_CNTB_EMPR
                                    And t2.ID_OPRC IN ( @VSID_COMP_0001,@VSID_VENT_0001 )
                                    And t2.CO_OPRC_CNTB = t1.CO_OPRC_CNTB  )
     )


 OR
    (  Exists ( Select t2.CO_OPRC_CNTB
                                    From TTIDEN_OPER t2
                                    Where t2.CO_EMPR = @ISCO_EMPR
                                    And t2.NU_CNTB_EMPR = @INNU_CNTB_EMPR
                                    And t2.ID_OPRC IN ( @VSID_COMP_0001,@VSID_VENT_0001 )
                                    And t2.CO_OPRC_CNTB = t1.CO_OPRC_CNTB  )
       AND  NOT Exists ( Select t2.CO_CNTA_EMPR
          From TTIDEN_CNTA t2
                                    Where t2.CO_EMPR = @ISCO_EMPR
                                    And t2.NU_CNTB_EMPR = @INNU_CNTB_EMPR
                                    And t2.ID_CNTA IN ( @VSID_COMP_0001,@VSID_VENT_0001 )
                                    And t2.CO_CNTA_EMPR = t1.CO_CNTA_EMPR  )
     )

 OR

     (

                        Exists(  Select T3.CO_OPRC_CNTB  
                        From TTIDEN_OPER T3, TTTIPO_COPA T4 
                        Where T3.CO_EMPR = @ISCO_EMPR
                        And T3.NU_CNTB_EMPR = @INNU_CNTB_EMPR  
           And T3.ID_OPRC IN ( @VSID_COMP_0001, @VSID_VENT_0001 )  
                        And T3.CO_OPRC_CNTB = t1.CO_OPRC_CNTB
				        AND T3.CO_EMPR = T4.CO_EMPR
                        AND T4.TI_COMP_PAGO = @CSTI_DOCU )

     )

)         

     Order By t1.FE_USUA_CREA Desc
      

     If DataLength(Rtrim(@VSNU_ASTO_0001)) != 0        
     Begin       
     Exec SP_TXMVTO_CNTB_I51  @ISCO_EMPR, @ISCO_USUA , @IDFE_USUA, @INNU_CNTB_EMPR, @VSCO_UNID_0001, @VSCO_OPRC_0001, 
            @VSNU_ASTO_0001, @ISCO_CNTA_EMPR, @ISST_CNTA_NATU, @VDFE_ASTO_0001, @INNU_MESE, @INNU_ANNO, @CSTI_AUXI_EMPR,
            @CSCO_AUXI_EMPR, @CSTI_DOCU, @CSNU_DOCU, @VNNU_SECU_0001, 'N' 
     End      
    End       
      
 Fetch CU_TXMVTO_CNTB_I06_1 Into @CSTI_DOCU, @CSNU_DOCU, @CDFE_DOCU, @CSTI_AUXI_EMPR, @CSCO_AUXI_EMPR,               
 @CNIM_ORIG_SALD, @CNIM_SOLE_SALD, @CDFE_DOCU_VENC,@CSCO_ORDE_SERV              

             

 End /* While @@Fetch_status =0 */              
 Close CU_TXMVTO_CNTB_I06_1              

 Deallocate CU_TXMVTO_CNTB_I06_1              

 

-- SUMA TOTAL CTA PERDIDA Y GANANCIA CASO UN SOLA OPERACION          

 If @ISCO_OPRC_CNTB = @ISCO_OPRC_PEND           
 Begin           
  Select @VNTO_CNTA_PERD = IsNull(@VNTO_CNTA_PERD, 0) + IsNull(@VNTO_PERD_PEND, 0)          
  Select @VNTO_CNTA_GANA = IsNull(@VNTO_CNTA_GANA, 0) + IsNull(@VNTO_GANA_PEND, 0)          
 End           
              
/* Insercion de cuenta de pTrdida en diferencia de cambio      */              
 If @VNTO_CNTA_PERD != 0.00              
   Begin                 
     If @VNTO_CNTA_PERD > 0.00              
      Begin              
         Select @VSTI_OPER = 'CAR'              
       End                      

     Else If @VNTO_CNTA_PERD < 0.00              
       Begin              
       Select @VSTI_OPER = 'ABO'              

       End              

             

     /*Comentario : Insercion del Asiento de Ajuste*/              
    Insert Into #TXMVTO_CNTB_EPAE ( CO_EMPR, NU_CNTB_EMPR, CO_UNID_CNTB, CO_OPRC_CNTB, NU_ANNO, NU_MESE,      
    NU_ASTO, NU_SECU, FE_ASTO_CNTB, CO_CNTA_EMPR, TI_AUXI_EMPR, CO_AUXI_EMPR, TI_DOCU, NU_DOCU,              
     FE_DOCU, TI_CAMB, CO_MONE, FA_CAMB, TI_OPER, IM_MVTO_ORIG, IM_MVTO_CNTB, DE_GLOS, SI_MVTO_CNTB,               
     NO_GIRA, ST_GEST, ST_REDO, FA_CAMB_DIAR, ST_DIFE_CAMB, CO_USUA_MODI, FE_USUA_MODI, CO_USUA_CREA, 
    FE_USUA_CREA, ST_MASI,CO_ORDE_SERV)
     Values( @ISCO_EMPR, @INNU_CNTB_EMPR, @ISCO_UNID_CNTB, @ISCO_OPRC_CNTB, @INNU_ANNO, @INNU_MESE,              
     @ISNU_ASTO, @VNNU_SECU, @VDFE_VOUC, @VSCO_CNTA_PERD, @VSTI_AUXI_DCPE, @VSCO_AUXI_DCPE, NULL, NULL,              
     NULL,'PAC', @VSCO_MONE_CNTB, 1.000000,  @VSTI_OPER, 0.00, abs(@VNTO_CNTA_PERD), 'AJUST x DIF.CAMBIO',              
     'APR', '  ', 'N', 'N', 1.000000, 'S', @ISCO_USUA , @IDFE_USUA, @ISCO_USUA, @IDFE_USUA, 'S',@VSCO_ORDE_DCPE)              
     If @@ERROR != 0              
       Begin               
         Rollback Tran          
         Return              
       End              
     Select @VNNU_SECU = @VNNU_SECU + 1              
   End              
              
/* Insercion de cuenta de pTrdida en diferencia de cambio Pendiente */              
 If @VNTO_PERD_PEND != 0.00  And @ISCO_OPRC_CNTB != @ISCO_OPRC_PEND               
   Begin                    

     If @VNTO_PERD_PEND > 0.00              
       Begin              
         Select @VSTI_OPER = 'CAR'              
       End                      
     Else If @VNTO_PERD_PEND < 0.00              
       Begin              
         Select @VSTI_OPER = 'ABO'              
       End              
              
     /*Comentario : Insercion del Asiento de Ajuste*/              
     Insert Into #TXMVTO_CNTB_EPAE ( CO_EMPR, NU_CNTB_EMPR, CO_UNID_CNTB, CO_OPRC_CNTB, NU_ANNO, NU_MESE,              
     NU_ASTO, NU_SECU, FE_ASTO_CNTB, CO_CNTA_EMPR, TI_AUXI_EMPR, CO_AUXI_EMPR, TI_DOCU, NU_DOCU,              
     FE_DOCU, TI_CAMB, CO_MONE, FA_CAMB, TI_OPER, IM_MVTO_ORIG, IM_MVTO_CNTB, DE_GLOS, SI_MVTO_CNTB,               
     NO_GIRA, ST_GEST, ST_REDO, FA_CAMB_DIAR, ST_DIFE_CAMB, CO_USUA_MODI, FE_USUA_MODI, CO_USUA_CREA,
     FE_USUA_CREA, ST_MASI,CO_ORDE_SERV)
     Values( @ISCO_EMPR, @INNU_CNTB_EMPR, @ISCO_UNID_CNTB, @ISCO_OPRC_PEND, @INNU_ANNO, @INNU_MESE,              
     @ISNU_ASTO_PEND, @VNNU_SECU_PEND, @VDFE_VOUC, @VSCO_CNTA_PERD, @VSTI_AUXI_DCPE, @VSCO_AUXI_DCPE, NULL, NULL,              
     NULL,'PAC', @VSCO_MONE_CNTB, 1.000000,  @VSTI_OPER, 0.00, abs(@VNTO_PERD_PEND), 'AJUST x DIF.CAMBIO',              
     'APR', '  ', 'N', 'N', 1.000000, 'S', @ISCO_USUA , @IDFE_USUA, @ISCO_USUA, @IDFE_USUA, 'S',@VSCO_ORDE_DCPE)
     If @@ERROR != 0              
       Begin               
         Rollback Tran              
         Return              
       End              
    Select @VNNU_SECU_PEND = @VNNU_SECU_PEND + 1              
   End              

              

/* Insercion de cuenta de ganancia en diferencia de cambio */              

 If @VNTO_CNTA_GANA != 0.00              
   Begin              
     If @VNTO_CNTA_GANA > 0.00              
       Begin              

        Select @VSTI_OPER = 'CAR'              
       End                      
     Else If @VNTO_CNTA_GANA < 0.00              
       Begin              
         Select @VSTI_OPER = 'ABO'              
       End              
     /*Comentario :Insercion del Asiento de Ajuste*/              
     Insert Into #TXMVTO_CNTB_EPAE ( CO_EMPR, NU_CNTB_EMPR, CO_UNID_CNTB, CO_OPRC_CNTB, NU_ANNO,NU_MESE,              
     NU_ASTO, NU_SECU, FE_ASTO_CNTB, CO_CNTA_EMPR, TI_AUXI_EMPR, CO_AUXI_EMPR, TI_DOCU, NU_DOCU,              
     FE_DOCU, TI_CAMB, CO_MONE, FA_CAMB, TI_OPER, IM_MVTO_ORIG, IM_MVTO_CNTB, DE_GLOS, SI_MVTO_CNTB,              
     NO_GIRA, ST_GEST, ST_REDO, FA_CAMB_DIAR, ST_DIFE_CAMB, CO_USUA_MODI, FE_USUA_MODI, CO_USUA_CREA,
     FE_USUA_CREA, ST_MASI,CO_ORDE_SERV)
     Values( @ISCO_EMPR, @INNU_CNTB_EMPR, @ISCO_UNID_CNTB, @ISCO_OPRC_CNTB, @INNU_ANNO, @INNU_MESE,              
     @ISNU_ASTO, @VNNU_SECU, @VDFE_VOUC, @VSCO_CNTA_GANA, @VSTI_AUXI_DCGA, @VSCO_AUXI_DCGA, NULL, NULL,              
     NULL,'PAC', @VSCO_MONE_CNTB, 1.000000,  @VSTI_OPER, 0.00, abs(@VNTO_CNTA_GANA), 'AJUST x DIF.CAMBIO',              
     'APR', '  ', 'N', 'N', 1.000000, 'S', @ISCO_USUA , @IDFE_USUA, @ISCO_USUA, @IDFE_USUA, 'S',@VSCO_ORDE_DCGA)              
     If @@ERROR != 0                   
       Begin               
         Rollback Tran               
         Return        
       End              
   End              
              
/* Insercion de cuenta de ganancia en diferencia de cambio */              

 If @VNTO_GANA_PEND != 0.00  And @ISCO_OPRC_CNTB != @ISCO_OPRC_PEND               
   Begin              
     If @VNTO_GANA_PEND > 0.00              
       Begin              
         Select @VSTI_OPER = 'CAR'              
       End                      
     Else If @VNTO_GANA_PEND < 0.00              
       Begin              
         Select @VSTI_OPER = 'ABO'              
       End              
     /*Comentario :Insercion del Asiento de Ajuste*/              
     Insert Into #TXMVTO_CNTB_EPAE ( CO_EMPR, NU_CNTB_EMPR, CO_UNID_CNTB, CO_OPRC_CNTB, NU_ANNO,NU_MESE,              
    NU_ASTO, NU_SECU, FE_ASTO_CNTB, CO_CNTA_EMPR, TI_AUXI_EMPR, CO_AUXI_EMPR, TI_DOCU, NU_DOCU,              
     FE_DOCU, TI_CAMB, CO_MONE, FA_CAMB, TI_OPER, IM_MVTO_ORIG, IM_MVTO_CNTB, DE_GLOS, SI_MVTO_CNTB,              
     NO_GIRA, ST_GEST, ST_REDO, FA_CAMB_DIAR, ST_DIFE_CAMB, CO_USUA_MODI, FE_USUA_MODI, CO_USUA_CREA, FE_USUA_CREA, ST_MASI,CO_ORDE_SERV)
     Values( @ISCO_EMPR, @INNU_CNTB_EMPR, @ISCO_UNID_CNTB, @ISCO_OPRC_PEND, @INNU_ANNO, @INNU_MESE,              
     @ISNU_ASTO_PEND, @VNNU_SECU_PEND, @VDFE_VOUC, @VSCO_CNTA_GANA, @VSTI_AUXI_DCGA, @VSCO_AUXI_DCGA, NULL, NULL,              
     NULL,'PAC', @VSCO_MONE_CNTB, 1.000000,  @VSTI_OPER, 0.00, abs(@VNTO_GANA_PEND), 'AJUST x DIF.CAMBIO',              
    'APR', '  ', 'N', 'N', 1.000000, 'S', @ISCO_USUA , @IDFE_USUA, @ISCO_USUA, @IDFE_USUA, 'S',@VSCO_ORDE_DCGA)
     If @@ERROR != 0                   
       Begin               
         Rollback Tran               
         Return              
       End              
   End        


Insert Into TXMVTO_CNTB( CO_EMPR, NU_CNTB_EMPR, CO_UNID_CNTB, CO_OPRC_CNTB, NU_ANNO,              
NU_MESE, NU_ASTO, NU_SECU, FE_ASTO_CNTB, CO_CNTA_EMPR, TI_AUXI_EMPR, CO_AUXI_EMPR,              
TI_DOCU, NU_DOCU, FE_DOCU, TI_CAMB, CO_MONE, FA_CAMB, TI_OPER, IM_MVTO_ORIG,          
IM_MVTO_CNTB, DE_GLOS, SI_MVTO_CNTB, NO_GIRA, ST_GEST, ST_REDO, FA_CAMB_DIAR, 
ST_DIFE_CAMB, FE_DOCU_VENC, CO_USUA_MODI, FE_USUA_MODI, CO_USUA_CREA, FE_USUA_CREA, ST_MASI,CO_ORDE_SERV)
Select  CO_EMPR, NU_CNTB_EMPR, CO_UNID_CNTB, CO_OPRC_CNTB, NU_ANNO,              
NU_MESE, NU_ASTO, NU_SECU, FE_ASTO_CNTB, CO_CNTA_EMPR, TI_AUXI_EMPR, CO_AUXI_EMPR,              
TI_DOCU, NU_DOCU, FE_DOCU, TI_CAMB, CO_MONE, FA_CAMB, TI_OPER, IM_MVTO_ORIG,          
IM_MVTO_CNTB, DE_GLOS, SI_MVTO_CNTB, NO_GIRA, ST_GEST, ST_REDO, FA_CAMB_DIAR, 
ST_DIFE_CAMB, FE_DOCU_VENC, CO_USUA_MODI, FE_USUA_MODI, CO_USUA_CREA, FE_USUA_CREA, ST_MASI,CO_ORDE_SERV
From #TXMVTO_CNTB_EPAE

     If @@ERROR != 0                   
       Begin               
         Rollback Tran               
         Return              
       End              

    Exec SP_TXMVTO_CNTB_I35 @ISCO_EMPR, @ISCO_USUA , @IDFE_USUA, @INNU_CNTB_EMPR,@ISCO_UNID_CNTB,              
     @ISCO_OPRC_CNTB,@INNU_ANNO,@INNU_MESE,@ISNU_ASTO              
              
    If @ISCO_OPRC_CNTB != @ISCO_OPRC_PEND          
    Begin --- (A)          
    Exec SP_TXMVTO_CNTB_I35 @ISCO_EMPR, @ISCO_USUA , @IDFE_USUA, @INNU_CNTB_EMPR,@ISCO_UNID_CNTB,              
     @ISCO_OPRC_PEND,@INNU_ANNO,@INNU_MESE,@ISNU_ASTO_PEND              
    End   --- (A)          

/*              
    Select @VNNU_SECU = MAX(NU_SECU)              
     From TXMVTO_CNTB              
     Where CO_EMPR = @ISCO_EMPR              
     And NU_CNTB_EMPR = @INNU_CNTB_EMPR              
     And CO_UNID_CNTB = @ISCO_UNID_CNTB                
     And CO_OPRC_CNTB = @ISCO_OPRC_CNTB              
     And NU_ANNO      = @INNU_ANNO              
     And NU_MESE      = @INNU_MESE              
     And NU_ASTO      = @ISNU_ASTO              */
                   
 If @VNNU_SECU > 1              
   Begin              
    Update TCFECH_PROC              
     Set NU_ULTI_ASTO = Convert(Int, @ISNU_ASTO),  
         CO_USUA_MODI =  @ISCO_USUA,  
         FE_USUA_MODI  = @IDFE_USUA  
     Where CO_EMPR = @ISCO_EMPR And              
     NU_CNTB_EMPR = @INNU_CNTB_EMPR And              
     CO_UNID_CNTB = @ISCO_UNID_CNTB And              
     CO_OPRC_CNTB = @ISCO_OPRC_CNTB and              
     NU_ANNO = @INNU_ANNO And              
     NU_MESE = @INNU_MESE And        
     NU_ULTI_ASTO < Convert(Int, @ISNU_ASTO)              
           
    If @@ERROR != 0  
      Begin               
        Rollback Tran               
        Return              
       End              
   End              

          

    If @ISCO_OPRC_CNTB != @ISCO_OPRC_PEND          

    Begin --- (B)          
             
/*
    Select @VNNU_SECU_PEND = MAX(NU_SECU)              
     From TXMVTO_CNTB              
     Where CO_EMPR = @ISCO_EMPR              
     And NU_CNTB_EMPR = @INNU_CNTB_EMPR              
     And CO_UNID_CNTB = @ISCO_UNID_CNTB                
     And CO_OPRC_CNTB = @ISCO_OPRC_PEND              
     And NU_ANNO      = @INNU_ANNO              
     And NU_MESE      = @INNU_MESE              
     And NU_ASTO      = @ISNU_ASTO_PEND              
*/              
        
 If @VNNU_SECU_PEND > 1              
   Begin              
     Update TCFECH_PROC              
     Set NU_ULTI_ASTO = Convert(Int, @ISNU_ASTO_PEND),  
         CO_USUA_MODI =  @ISCO_USUA,  
         FE_USUA_MODI  = @IDFE_USUA  
     Where CO_EMPR = @ISCO_EMPR And              
     NU_CNTB_EMPR = @INNU_CNTB_EMPR And               
     CO_UNID_CNTB = @ISCO_UNID_CNTB And              
     CO_OPRC_CNTB = @ISCO_OPRC_PEND and              
     NU_ANNO = @INNU_ANNO And              
     NU_MESE = @INNU_MESE And        
     NU_ULTI_ASTO < Convert(Int, @ISNU_ASTO_PEND)              
              
     If @@ERROR != 0                   
       Begin               
         Rollback Tran               
     Return              
       End             
   End              
 End --- (B)          
              
Commit Transaction              

Return              

/*-------------------------------- Fin -----------------------------*/




GO
